import { IsString, IsNotEmpty, Length } from 'class-validator';

/**
 * DTO（Data Transfer Object，数据传输对象）是一种设计模式，用于在不同层之间传输数据。
 * 它通常用于将数据从一个系统传输到另一个系统，或者在应用程序的不同层之间传递数据。
 * DTO的主要目的是封装数据并减少传输的数据量，同时确保数据的完整性和一致性。

在NestJS中，DTO通常用于定义请求和响应的数据结构。
例如，在创建用户的操作中，可以使用CreateUserDto来定义请求体的数据结构。

IsString : 用于验证属性是否为字符串类型
IsNotEmpty : 用于验证属性是否为空
Length : 用于验证属性的长度范围

 */
export class CreateUserDto {
    @IsString()
    @IsNotEmpty()
    @Length(2, 20)
    username: string;

    @IsString()
    @IsNotEmpty()
    @Length(6, 20)
    password: string;

    @IsString()
    @IsNotEmpty()
    @Length(11, 11)
    phone: string;
}
